package io.github.wppli.domain.posts.repository;

import io.github.wppli.domain.posts.model.aggregate.PublishPostsAggregate;
import io.github.wppli.domain.posts.model.entity.CollectPostsEntity;
import io.github.wppli.domain.posts.model.entity.PostEntity;
import io.github.wppli.domain.posts.model.entity.PublishPostsEntity;
import io.github.wppli.domain.recommond.model.entity.PostsContentEntity;

import java.util.List;

/**
 *
 * @author li--jiaqiang 2025−03−11
 */
public interface IPostsRepository {

    void publishPosts(PublishPostsAggregate publishPostsAggregate);

    List<PostEntity> listPosts(Long authorId);

    PostEntity getPosts(Long postId);

    int deletePosts(Long postId, Long authorId);

    void likePosts(Long postId, int adjustCount);

    void updateOrInsertLike(Long postId, Long userId, int status);

    void updateCollectPostsCount(CollectPostsEntity collectPostsEntity);

    List<PostsContentEntity> queryBatchIds(List<Long> postsContentIds);

    List<PostsContentEntity> findAll();
}